perm filename ALPH.FAI[RST,LCS] blob
sn#236454 filedate 1976-09-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE ALPHA
C00017 ENDMK
C⊗;
TITLE ALPHA
ENTRY ALPHA
EXTERNAL .COMM.,STF,POSI,PLTR,FONT,SPACER,PNUM,ROFF
EXTERNAL ITMSUB,RHORZ,CLEFS
DEFINE JTR<.COMM.+=20> ↔ DEFINE RB<.COMM.+=43>
DEFINE RW<.COMM.+=42> ↔ DEFINE RX<.COMM.+=40>
DEFINE RY<.COMM.+=39> ↔ DEFINE R<.COMM.+=23>
DEFINE RF<.COMM.+=18> ↔ DEFINE JR3<.COMM.+=27>
DEFINE IFNT<.COMM.+=36> ↔ DEFINE RZ<.COMM.+=41>
DEFINE JX<.COMM.+=34> ↔ DEFINE FILL<.COMM.+=22>
FNAME: ASCII/PRIM0/
ASCII/BDR40/
ASCII/BDI40/
ALPHA: 0
MOVE .COMM.+1 ;JA
CAIN 7
JRST AL20 ;JA=7 IS FOR TRILLS, ETC.
MOVEI =99
MOVEM JTR
MOVE .COMM.+6
CAMGE [100.0]
JRST .+3
MOVN [100.0]
FADRM .COMM.+6 ;IF(R5.GE.100)R5=R5-100
MOVN 1,FONT ;SHI=ITAL., SHP=PRIM, SHO=BDR
JUMPLE 1,ALX54 ;IF(JFONT.GE.0)GO TO ALX54
MOVEI 1
MOVEM FONT ;JFONT=1
MOVE FNAME-1(1) ;GET THE DESIRED FONT NAME
JRST AL54-1 ; PUT IT IN NR
ALX54: MOVE NR#
CAME FNAME
CAMN FNAME+2
JRST AL54
MOVE FNAME+1 ;DEFAULT FONT IS BDR40
MOVEM NR
AL54: MOVE [19.7]
FMPR .COMM.+6
FMPR STF+=8
MOVEM R ;OR JUST LEAVE IN AC0
FLTR 1,.COMM.+=24 ;MOVE 1,.COMM.+=24 ;J3
;; TLC 1,232000
;; FADR 1,1
MOVEM 1,RB ; OR LEAVE IN AC1
MOVE 2,.COMM.+5
MOVEM 2,RW ; OR LEAVE IN AC2
SETZM .COMM.+=30 ;J9=0
MOVEI 15,4
AL50X: SETOM NXZ# ; THE BIG LOOP
MOVEM 15,K#
MOVE 3,.COMM.+3(15) ;RZ IS AC3
FADR 3,[0.2]
KIFIX 0,3 ;JSA 16,IFIX
; JUMP 3
MOVEM JY#
MOVE 4,[=1000000] ; 4 IS JX
MOVEM 4,JX
MOVEI 14,1 ; LA
AL53X: MOVEM 14,LA#
MOVE JY
IDIV JX
MOVEM J5X#
FLTR 2,.COMM.+=24 ;MOVE 2,.COMM.+=24 ;R3=J3
; TLC 2,232000
; FADR 2,2
MOVEM 2,.COMM.+4
CAIN =99
JRST AL55
AL73: SKIPL KFNT#
JRST .+3
MOVEI 2,1
MOVEM 2,IFNT
CAIGE =70
JRST AL72
SETOM KFNT
SETOM IFNT
SUBI =60
MOVEM .COMM.+=26 ; J5
AL72: CAIGE =50
JRST AL1
CAIG =49
JRST AL72X
CAIN =50
JRST AL2
CAIN =51
JRST AL3
CAIN =52
JRST AL9
CAIN =53
JRST AL4
CAIN =54
JRST AL5
AL72X: CAILE =55
JRST AL10
MOVEI =36 ;J5=36 LINE 6200 IN ALPHA.F4 11/3/76
MOVE 2,[2.9]
FADRM 2,.COMM.+5 ; R4
JRST AL1
AL3: MOVE 2,FNAME+2 ; CODE 51
SKIPA
AL2: MOVE 2,FNAME+1 ; CODE 50
SKIPGE FONT
AL9: MOVE 2,FNAME ; CODE 52
MOVEM 2,NR
JRST AL11
AL4: MOVN 2,[2.0]
MOVEM 2,.COMM.+=22 ;FILL IS EQUIV. TO RJQ(19)
JRST AL11
AL5: SETZM .COMM.+=22
JRST AL11
AL10: ADDI 6
MOVE 2,NR
MOVEM 2,NRX#
SETZM NXZ#
MOVE 2,FNAME+1
MOVEM 2,NR
MOVE 2,FONT
MOVEM 2,NJF#
SETOM FONT ; JFONT
AL1: MOVEM .COMM.+=26 ;PUT AWAY J5
JSA 16,SPACER
JUMP .COMM.+=26
JUMP IFNT
JUMP RB
JUMP R
;; MOVE .COMM.+=26 ; PUT J5 BACK INTO AC0
CAILE =60
JRST AL71
CAIN =47
JRST AL6
CAIL =47
JRST AL11
SKIPE 2,.COMM.+=12 ; LABEL 7 IN ALPHA.F4
JRST AL79
SKIPG FONT
JRST AL78
JRST AL77
AL79: MOVEM 2,.COMM.+=10 ; R9
SETOM .COMM.+=30 ;J9=-1
JRST AL77
AL277: MOVE 2,FNAME ;IF(NR.NE.'PRIM0')GO TO 70
CAME 2,NR
JRST AL70
SKIPGE IFNT
CAIGE =10
JRST AL30
JRST AL71
AL177: ADDI =22 ;J5=J5+22 (=62 )=63 IN BDI (BDI46)
MOVEM .COMM.+=26
MOVE NR ;SAVE OLD FILE NAME
MOVEM NRX
MOVE FNAME+2 ;BDI40
MOVEM NR
MOVE FONT
MOVEM NJF ;SAVE FONT FLAG
SETZM NXZ ;FLAG TO GET BACK RIGHT FLAGS BEFORE AL30
JRST AL71
AL70: CAILE =9
SKIPL IFNT ;IFNT IS .COMM.+=36
JRST AL71
ADDI =26
MOVEM .COMM.+=26 ; J5
AL71: MOVE 2,.COMM.+7
MOVEM 2,RX
MOVE 2,[0.28]
FMPR 2,.COMM.+6
MOVEM 2,.COMM.+7
MOVE 3,.COMM.+=8
MOVEM 3,RY
MOVEM 2,.COMM.+=8
MOVE 2,.COMM.+=9 ; R8
MOVEM 2,RZ ; LINE 11400 IN ALPHA.F4
MOVE 2,[-2.1]
FADRM 2,.COMM.+5
MOVE 2,FILL
MOVEM 2,.COMM.+=9
MOVE 2,NR
MOVEM 2,.COMM.+=11 ; NRJ IS EQUIV TO R10
MOVEI 2,=12
MOVEM 2,.COMM.+1
JSA 16,CLEFS
MOVE 2,RX
MOVEM 2,.COMM.+7
MOVE 2,RY
MOVEM 2,.COMM.+=8
MOVE 2,RZ
MOVEM 2,.COMM.+=9
SKIPGE NXZ
JRST AL6
MOVE 2,NRX
MOVEM 2,NR
MOVE 2,NJF
MOVEM 2,FONT
JRST AL6
AL78: SKIPL PLTR ;IF(PLTR.GE.0)GO TO 30
JRST AL30
AL77: CAIGE =36 ;IF(J5.LT.36)GO TO 277
JRST AL277
CAIE =40 ; A LEFT PARENTH?
CAIN =41 ; A RIGHT "
JRST AL177
AL30: SETZM .COMM.+=28 ;J7=0
MOVE 2,.COMM.+6
MOVEM 2,.COMM.+7
JSA 16,PNUM
AL6: JSA 16,ROFF
JUMP RB
KIFIX 0,0 ;MOVE 2,
; JSA 16,IFIX
; JUMP 2
MOVEM .COMM.+=24 ;J3=ROFF(RB)
MOVE 2,RW
MOVEM 2,.COMM.+5
AL11: MOVN 2,J5X
IMUL 2,JX
ADDM 2,JY
AL53: MOVE 2,JX
IDIVI 2,=100
MOVEM 2,JX
MOVE 14,LA
CAIGE 14,4
AOJA 14,AL53X
AL50: MOVE 15,K
CAIGE 15,6
AOJA 15,AL50X
AL55: MOVE 2,JTR
CAIE 2,=99
JRST AL52
JRST AL100
AL20: MOVE .COMM.+7 ; FOR TRILLS, ETC.
MOVEM RF
MOVE .COMM.+=28 ; J7 IS IN AC0
CAIG 1
JRST AL200
CAIL =8
JRST AL201
MOVE 2,.COMM.+=9
MOVEM 2,RW
MOVE 2,.COMM.+4
MOVEM 2,RB
MOVEM NR ; NR=J7
MOVE 2,.COMM.+=26
MOVEM 2,JY
MOVE 2,.COMM.+=10
JUMPN 2,.+3
MOVE 2,[1.0]
MOVEM 2,.COMM.+=10
MOVEM 2,RY
FMPR 2,STF+=8
FMPR 2,[23.84]
MOVEM 2,RX
MOVE 2,[0.45]
FMPR 2,RY
MOVEM 2,.COMM.+7
SETZM .COMM.+=30 ; J9=0 LINE 16500
MOVEI 2,=18
MOVEM 2,.COMM.+=26
MOVEI 2,3
MOVEM 2,.COMM.+1 ;JA=3
SETZM .COMM.+6
SETZM .COMM.+=8
MOVN 2,[6.0]
FADRM 2,.COMM.+5 ;R4=R4-6 PUTS PED MARK BELOW STF.
JSA 16,CLEFS
SKIPN 1,JY
JRST AL222
MOVN 2,[1.0]
MOVEM 2,.COMM.+=9 ; R8=-1
MOVEI 2,=19
MOVEM 2,.COMM.+=26 ; J5=19
CAIGE 1,=100
JRST AL203
SUBI 1,=100
MOVEM 1,JY
JSA 16,CLEFS
AL203: MOVE 2,RB
FADR 2,RX
MOVEM 2,.COMM.+4
MOVE JY
CAIGE =10
JRST AL204
SUBI =10
MOVEM JY
JSA 16,CLEFS
AL204: MOVE 2,RB
FADR 2,RX
FADR 2,RX ; R3=RB+RX+RX
MOVEM 2,.COMM.+4
SKIPE JY
JSA 16,CLEFS
AL222: MOVE NR
CAIN 2
JRA 16,(16)
SKIPN 2,RW
JRST ALX
FMPR 2,[5.96]
FSBR 2,RB
MOVNM 2,.COMM.+4
ALX: MOVE 2,POSI+=9 ;RX=POS
MOVEM 2,RX
MOVE 2,RF
MOVEM 2,.COMM.+=7
MOVE 2,[3.0]
FADRB 2,.COMM.+5
MOVEM 2,.COMM.+6 ;R5=R4
SETZM .COMM.+=28
SETZM .COMM.+=8
SETZM .COMM.+=9
SETZM .COMM.+=11 ; R10=0
AL206: JSA 16,ITMSUB
MOVE NR
CAIN 4
JRA 16,(16)
MOVE 2,RX
MOVEM 2,POSI+=9 ;POS=RX
JSA 16,RHORZ
JUMP RF
MOVE 3,
JSA 16,ROFF
JUMP 3
MOVEM .COMM.+4 ;R3=ROFF(RHORZ(RF))
MOVE 2,[1.4]
FMPR 2,RY
FADRM 2,.COMM.+6
JSA 16,ITMSUB
JRA 16,(16)
AL202: MOVE 7,[47717088.0] ; FOR 8VA BASSA
MOVE 2,[88709999.0]
MOVEM 2,.COMM.+=9
MOVE 10,[138.0]
JRST AL214-1
AL201: SKIPN 2,.COMM.+6 ;CALL NOZERO(R5)
MOVE 2,[1.0]
MOVEM 2,.COMM.+6
MOVE .COMM.+=28
CAIN =15
JRST AL205
MOVE 10,[47.0]
MOVE 7,[99999999.0]
MOVE 6,[51089170.0]
AL214: MOVEM 10,RR10#
MOVE 2,.COMM.+6
FMPR 2,STF+=8 ;RR5 IS AC2
;;; MOVEM 2,RR5#
FMPR 10,2 ;AC10 WILL BE RR3
FADR 10,.COMM.+4
MOVEM 10,RR3#
SETOM JTR
MOVE 2,.COMM.+=28
MOVEM 2,.COMM.+=25 ;J4=J7
MOVE 2,.COMM.+=29
MOVEM 2,.COMM.+=31 ;J10=J8
JRST AL212
AL205: MOVE 6,[51010582.0]
MOVE 7,[70999999.0]
MOVE 10,[56.0]
JRST AL214
AL213: MOVE 2,[1.8]
FMPR 2,.COMM.+6 ; WAS → FMPR 2,RR5
MOVEM 2,.COMM.+=9
SETZM .COMM.+=10
MOVE 2,RR3
MOVEM 2,.COMM.+4
MOVE 2,RF
MOVEM 2,.COMM.+7
MOVE 2,[0.7]
FMPR 2,STF+=8
FADRB 2,.COMM.+5
MOVEM 2,.COMM.+6
;; MOVE 2,.COMM.+=25 ;J5=J4 (NO LONGER NEEDED]
;; MOVEM 2,.COMM.+=26
SETOM .COMM.+=32 ;J11=-1
SKIPGE .COMM.+=25
MOVNS .COMM.+=32 ;IF(J4)J11=-J11
SKIPE .COMM.+=31 ;IF(J10.NE.)J11=0
SETZM .COMM.+=32
MOVEI 2,1
MOVEM 2,.COMM.+=28
SETZM .COMM.+=31 ;J10=0
JSA 16,ITMSUB
JRA 16,(16)
AL200: MOVE 2,.COMM.+6
JUMPN 2,.+3
MOVE 2,[1.0]
MOVEM 2,.COMM.+6
MOVN 4,.COMM.+=28 ;IF(J7.EQ.-8)GO TO 202
CAIN 4,=8
JRST AL202
MOVEM 2,RR10
MOVE 2,[6.0]
FMPR 2,STF+=8
KIFIX 0,2 ;JSA 16,IFIX
; JUMP 2
ADDB .COMM.+=24 ;J3=J3+6*RSTJ2
MOVEM JR3
MOVE 6,[51898799.0]
MOVE 7,[99999999.0]
MOVNM 4,JTR ; -J7 WAS IN AC4
AL212: MOVEM 6,.COMM.+=7
MOVEM 7,.COMM.+=8
MOVE 2,[0.8]
FMPRM 2,.COMM.+6
JRST AL54
AL52: SKIPE JTR
JRST AL100
FLTR 3,JR3 ;MOVE 3,JR3
; TLC 3,232000
; FADR 3,3
MOVE 2,[20.0]
FMPR 2,STF+=8
FMPR 2,RR10
FADR 2,3
MOVEM 2,.COMM.+4
MOVEI 4
MOVEM .COMM.+1
MOVEI 2
MOVNM .COMM.+=28
MOVE RF
MOVEM .COMM.+7
MOVE [0.7]
FMPR RR10
MOVEM .COMM.+=10
MOVE [0.9]
FMPR RR10
MOVEM .COMM.+=9
SETZM .COMM.+=31
SKIPGE PLTR
AOS .COMM.+=31
JSA 16,ITMSUB
AL100: SKIPGE JTR
JRST AL213
SKIPL KFNT
JRST .+3
MOVEI 1
MOVEM IFNT
SETZM KFNT
JRA 16,(16) ;END
SPACER: 0 ;CALL SPACERR(J5,IFNT,RB,R)
MOVE @(16) ; J5 FOR NOW
CAILE =47
JRST SP10
CAIG =9
JRST SP117
CAIGE =36
JRST SP10
SP117: MOVE 3,[1.0] ; AC3 IS RSX
SKIPGE @1(16) ;IFNT FOR NOW
MOVE 3,[0.9]
JRST SP3
SP10: CAIGE =47
JRST SP5
CAIN =52
JRST SP14
CAIE =48
JRST .+3
MOVEI 2,1
MOVEM 2,@1(16) ;IFNT
CAIN =49
SETOM @1(16)
CAIGE =55
JRA 16,4(16)
JRST SP5
SP14: SETZM @1(16)
MOVEI 2,=10
MOVEM 2,.COMM.+1 ;JA=10
JRA 16,4(16)
SP5: MOVE 3,[1.08]
SKIPGE @1(16)
MOVE 3,[0.96]
CAIN =22
JRST SP277
CAIE =32
JRST SP3
SP277: FMPR 3,[1.12] ;3 IS RSX
SP3: CAIGE =36
CAIN 1
JRST SP21
CAIE =18
CAIN =19
JRST SP21
SKIPL @1(16)
JRST SP4
CAIE =15 ; NEXT FOR LOWER CASE SPACING
CAIN =21
JRST SP21
CAIE =29
JRST SP4
SP21: CAIE =47
FMPR 3,[0.68] ;SPACER FOR A BLANK
SP4: FMPR 3,@3(16) ;RB=RB+R*RSX
FADRM 3,@2(16)
JRA 16,4(16)
END